A future broadband wireless communications system needs to implement, on limited spectrum resources, high-speed and reliable transmission of comprehensive service content. Therefore, a highly reliable channel encoding solution is required. As a channel encoding solution whose performance may be close to that of a channel capacity, an LDPC code has many advantages such as parallel and high-speed decoding, low error leveling, self-interleaving, and flexible coding rate design, and therefore, has become an optional channel encoding solution of a wireless local area network (Wireless Local Area Network, WLAN) standard (that is, the Institute of Electrical and Electronic Engineers (Institute of Electrical and Electronic Engineers, IEEE) 802.11ac standard).
The LDPC code is a type of special (N,K) linear block code, where N,K are a code length and an information bit length, respectively. In an LDPC code check matrix H={Hi,j}, most elements are 0, and a few elements are 1, that is, H is a sparse matrix. The LDPC code may also be equivalently determined by a factor diagram (Tanner diagram) of the LDPC code, the Tanner diagram and the LDPC code check matrix are in a one-to-one correspondence, and the Tanner diagram includes a variable node set {Vi} and a check node set {Ci}. A check node Ci in the Tanner diagram is corresponding to an ith row in the H, that is, an ith check equation in the matrix; while a variable node Vj is corresponding to a jth column in the H, that is, a jth bit in an encoded codeword. The following uses a 4×8-dimensional LDPC code check matrix as an example for description, and the LDPC code check matrix H is as follows:
  H  =            [                                    1                                0                                1                                0                                1                                0                                1                                0                                                1                                0                                0                                1                                0                                1                                0                                1                                                0                                1                                1                                0                                0                                1                                1                                0                                                0                                1                                0                                1                                1                                0                                0                                1                              ]        .  
FIG. 1 is a Tanner diagram corresponding to the LDPC code check matrix H. The check node Ci in the Tanner diagram is corresponding to the ith row in the H, and the variable node Vj in the Tanner diagram is corresponding to the ith column in the H. For example, a check equation corresponding to a check node C1 is: V1+V3+V5+V7=0. A node set {V3, C3, V7, C1} in FIG. 1 forms a cycle with a length of 4.
The LDPC code check matrix H used in the existing WLAN standard (IEEE 802.11ac) has systematic (Systematic) and quasi-cyclic (Quasi-Cyclic) structures. FIG. 2 is a used LDPC code check matrix H with a code length of N=648 and a coding rate of R=½ Each element in the 12×24-dimensional mother matrix represents a z=N/24-order square matrix, where “-” in the mother matrix represents a z×z-order all-zero square matrix, i(0≤i≤z−1) represents a square matrix Pzi obtained by cyclically shifting to the right by i bits in each row in a z×z-order unit matrix, 0 is the z×z-order unit matrix, and an example of PZ1 is as follows:
      [                            0                          1                          0                          …                          0                                      0                          0                          1                          …                          0                                      ⋮                          ⋮                          ⋮                          ⋱                          ⋮                                      0                          0                          0                          …                          1                                      1                          0                          0                          …                          0                      ]    .
On a time-varying channel from which channel state information may be obtained, using an error control policy proactively adaptive to an encoding rate according to different channel conditions can improve system transmission efficiency on the premise of ensuring reliability. In this case, a solution in which multiple encoder pairs and decoder pairs are used has excessively high implementation complexity; therefore, a rate compatible channel encoding solution in which a single pair of encoder and decoder is more implementable. When a rate compatible LDPC encoding solution is to be designed, first, an LDPC code check matrix with a medium coding rate is designed as a mother code, and then the coding rate may be flexibly improved or reduced respectively by means of puncturing (Puncturing) or repetition (Repetition).
A coding rate of an LDPC code with a given parameter is R=K/N, and if a high rate code with a coding rate of R′>R is expected to be obtained, a quantity of variable nodes that need to be punctured is: mp=N−K/R′. mp bits are randomly deleted from a parity bit part in a codeword sequence encoded by using an LDPC code check matrix, to obtain a high rate code with a coding rate of R′, where the puncturing manner is random puncturing. In a current hybrid automatic repeat request (HARQ, Hybrid Automatic Repeat reQuest) system, puncturing manners of LDPC codes are mostly a random puncturing solution. In this manner, each time when a high rate LDPC code is constructed by using a low rate LDPC code, a location of a deleted bit is randomly selected. During decoding, a receive end needs to know a to-be-deleted matrix in advance. As a result, during each transmission, extra overheads are needed to send the to-be-deleted matrix to the receive end, which causes a waste of system resources. In addition, a puncturing location and order of the LDPC code check matrix are not optimized in random puncturing; therefore, relatively favorable puncturing performance cannot be provided.
To improve the foregoing puncturing manner, a puncturing manner based on a variable node degree distribution is provided, that is, a parity bit corresponding to a lower variable node degree is preferentially punctured. This manner is based on analysis of decoding performance of an irregular LDPC code, and a variable node with a higher degree may obtain more check information in iterative decoding; therefore, decoding convergence is faster and reliability is higher. Based on such analysis, a variable node with a lower degree has smaller impact on the decoding performance. An LDPC code used in the WLAN standard is a systematic code, and in a matrix obtained by means of encoding by using an LDPC code check matrix, the left half part is an information part, and the right half part is a check part. A bit corresponding to a column in the information part is an information bit in an encoded codeword, and a bit corresponding to a column in the check part is a parity bit in the encoded codeword. When coding rates are transformed, during puncturing in all solutions, only a parity bit is punctured. As can be seen from FIG. 2, degrees of the first Z columns of the check part of the LDPC code check matrix H in the WLAN standard are all 3, and degrees of all remaining columns are 2. It is stipulated in the IEEE 802.11ac standard that puncturing is performed sequentially in a reverse order starting from the last column of the LDPC code check matrix to the front, that is, in an LDPC code puncturing solution used in the WLAN standard, puncturing is performed based on the degree distribution. However, because most degrees corresponding to parity bits of a check matrix in the WLAN standard are 2, and only a few degrees are 3, performing puncturing according to the degree distribution cannot effectively distinguish the parity bits, and it is quite difficult to determine a parity bit that needs to be preferentially punctured. Because in this manner, all parity bits with a degree of 2 are also randomly punctured, preferable relatively favorable performance also cannot be provided.
In conclusion, to-be-punctured parity bits that use LDPC codes cannot be effectively distinguished in an existing puncturing manner based on a variable node degree distribution, and performance of an obtained high coding rate LDPC code is relatively poor.